Linux ケイパビリティ
Linuxのケイパビリティ(Capability)について
特権プロセスか非特権プロセスかという分け方は大雑把すぎるのでより細かく実行能力を分けるようにしたアクセス制御の仕組み 以下はケーパビリティの一部
CAP_CHOWN
ファイルの所有者(UID)とグループ(GID)を変更する能力
CAP_NET_BIND_SERVICE
1024未満(1023まで)のポートにバインドする能力
CAP_KILL
他のプロセスを終了またはシグナル送信する能力
CAP_SYS_TIME
システム時刻の変更能力
CAP_NET_ADMIN
各種のネットワーク関係の操作能力
libcapライブラリがケイパビリティ変更のAPIを持っている ケイパビリティに関するコマンド
setcap
バイナリやシェルスクリプトにケイパビリティを付与 / 削除
getcap
指定したファイルが持つケイパビリティ一覧を表示
code:sh
# 例: /usr/bin/ssh に CAP_NET_ADMIN と CAP_SYS_PTRACE を付与
sudo setcap 'cap_net_admin+ep' /usr/bin/ssh
code:sh
# 任意のファイルが持つケイパビリティを表示
# getcap <file>
$ getcap /usr/bin/ssh
/usr/bin/ssh cap_net_admin=ep
確認用
Q. ケイパビリティとは
参考
関連
メモ